home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / tex / cmsrc392.zip / BIGDEL.MF < prev    next >
Text File  |  1992-03-30  |  30KB  |  698 lines

  1. % This file contains series of large delimiters for math extension fonts.
  2.  
  3. % The sizes are `{\tt\char`\\big}' (|2dh#|), `{\tt\char`\\Big}' (|3dh#|),
  4. % `{\tt\char`\\bigg}' (|4dh#|), and `{\tt\char`\\Bigg}' (|5dh#|),
  5. % followed in most cases by an extensible character that can grow
  6. % arbitrarily large in |dh#| steps,
  7. % where |dh#| is 60\% of the font design size.
  8. % (For example, a 10-point font will have large delimiters in sizes
  9. % 12$\,$pt, 18$\,$pt, 24$\,$pt, 30$\,$pt, 36$\,$pt, 42$\,$pt, etc.)
  10.  
  11. % Character codes \0000--\0105 and \0150--\0177 are generated.
  12.  
  13. charlist oct"000": oct"020": oct"022": oct"040": oct"060";  % left parentheses
  14. charlist oct"001": oct"021": oct"023": oct"041": oct"061";  % right parentheses
  15. charlist oct"002": oct"150": oct"024": oct"042": oct"062";  % left brackets
  16. charlist oct"003": oct"151": oct"025": oct"043": oct"063";  % right brackets
  17. charlist oct"004": oct"152": oct"026": oct"044": oct"064";  % left floors
  18. charlist oct"005": oct"153": oct"027": oct"045": oct"065";  % right floors
  19. charlist oct"006": oct"154": oct"030": oct"046": oct"066";  % left ceilings
  20. charlist oct"007": oct"155": oct"031": oct"047": oct"067";  % right ceilings
  21. charlist oct"010": oct"156": oct"032": oct"050": oct"070";  % left braces
  22. charlist oct"011": oct"157": oct"033": oct"051": oct"071";  % right braces
  23. charlist oct"012": oct"104": oct"034": oct"052";  % left angle brackets
  24. charlist oct"013": oct"105": oct"035": oct"053";  % right angle brackets
  25. charlist oct"016": oct"056": oct"036": oct"054";  % slashes
  26. charlist oct"017": oct"057": oct"037": oct"055";  % backslashes
  27. charlist oct"160": oct"161": oct"162": oct"163": oct"164";  % radical signs
  28.  
  29. extensible oct"014": 0,0,0,oct"014";  % vertical line
  30. extensible oct"015": 0,0,0,oct"015";  % double vertical line
  31. extensible oct"060": oct"060",0,oct"100",oct"102";  % left parenthesis
  32. extensible oct"061": oct"061",0,oct"101",oct"103";  % right parenthesis
  33. extensible oct"062": oct"062",0,oct"064",oct"066";  % left bracket
  34. extensible oct"063": oct"063",0,oct"065",oct"067";  % right bracket
  35. extensible oct"064": 0,0,oct"064",oct"066";  % left floor bracket
  36. extensible oct"065": 0,0,oct"065",oct"067";  % right floor bracket
  37. extensible oct"066": oct"062",0,0,oct"066";  % left ceiling bracket
  38. extensible oct"067": oct"063",0,0,oct"067";  % right ceiling bracket
  39. extensible oct"070": oct"070",oct"074",oct"072",oct"076";  % left brace
  40. extensible oct"071": oct"071",oct"075",oct"073",oct"076";  % right brace
  41. extensible oct"072": oct"070",0,oct"072",oct"076";  % sharp left parenthesis
  42. extensible oct"073": oct"071",0,oct"073",oct"076";  % sharp right parenthesis
  43. extensible oct"074": 0,0,0,oct"077";  % arrow extension modules only
  44. extensible oct"075": 0,0,0,oct"167";  % double arrow extension modules only
  45. extensible oct"076": 0,0,0,oct"076";  % brace extension modules only
  46. extensible oct"077": oct"170",0,oct"171",oct"077";  % updownarrow
  47. extensible oct"100": oct"070",0,oct"073",oct"076";  % left moustache
  48. extensible oct"101": oct"071",0,oct"072",oct"076";  % right moustache
  49. extensible oct"102": 0,0,0,oct"102";  % left parenthesis extension modules only
  50. extensible oct"103": 0,0,0,oct"103";  % right parenthesis extension modules only
  51. extensible oct"164": oct"166",0,oct"164",oct"165";  % radical sign
  52. extensible oct"167": oct"176",0,oct"177",oct"167";  % double updownarrow
  53. extensible oct"170": oct"170",0,0,oct"077";  % uparrow
  54. extensible oct"171": 0,0,oct"171",oct"077";  % downarrow
  55. extensible oct"176": oct"176",0,0,oct"167";  % double uparrow
  56. extensible oct"177": 0,0,oct"177",oct"167";  % double downarrow
  57.  
  58. cmchar "\big left parenthesis";
  59. beginchar(oct"000",7u#,rule_thickness#,2dh#-rule_thickness#);
  60. adjust_fit(1.5u#,-.25u#); left_paren(hair,stem); endchar;
  61.  
  62. cmchar "\Big left parenthesis";
  63. beginchar(oct"020",9u#,rule_thickness#,3dh#-rule_thickness#);
  64. adjust_fit(2u#,-.25u#); left_paren(rule_thickness,.5[stem,bold]); endchar;
  65.  
  66. cmchar "\bigg left parenthesis";
  67. beginchar(oct"022",11u#,rule_thickness#,4dh#-rule_thickness#);
  68. adjust_fit(2.5u#,-.25u#); left_paren(rule_thickness+.2dw,bold); endchar;
  69.  
  70. cmchar "\Bigg left parenthesis";
  71. beginchar(oct"040",11.5u#,rule_thickness#,5dh#-rule_thickness#);
  72. adjust_fit(3u#,-.25u#); left_paren(rule_thickness+.4dw,bold+dw); endchar;
  73.  
  74. cmchar "Extensible left parenthesis---top";
  75. beginchar(oct"060",12u#,rule_thickness#,3dh#-rule_thickness#);
  76. adjust_fit(4u#,-.25u#); pickup fine.nib;
  77. numeric min_breadth,max_breadth;
  78. min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
  79. pos1(hround min_breadth,0); pos2(hround max_breadth,0);
  80. rt x1r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
  81. top y1=h-1; y2=-d-eps;
  82. filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e;  % upper arc
  83. penlabels(1,2); endchar;
  84.  
  85. cmchar "Extensible left parenthesis---bottom";
  86. beginchar(oct"100",12u#,rule_thickness#,3dh#-rule_thickness#);
  87. adjust_fit(4u#,-.25u#); pickup fine.nib;
  88. numeric min_breadth,max_breadth;
  89. min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
  90. pos3(hround min_breadth,0); pos2(hround max_breadth,0);
  91. rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
  92. bot y3=1-d; y2=h+eps;
  93. filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e;  % lower arc
  94. penlabels(2,3); endchar;
  95.  
  96. cmchar "Extensible left parenthesis---extension module";
  97. beginchar(oct"102",12u#,0,dh#);
  98. adjust_fit(4u#,-.25u#); pickup fine.nib;
  99. numeric max_breadth; max_breadth=bold+2dw;
  100. pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
  101. lft x2l=lft x2'l=hround 1.25u; y2=h+eps; y2'=-d-eps;
  102. filldraw stroke z2e--z2'e;  % link
  103. penlabels(2,2'); endchar;
  104.  
  105. cmchar "\big right parenthesis";
  106. beginchar(oct"001",7u#,rule_thickness#,2dh#-rule_thickness#);
  107. adjust_fit(-.25u#,1.5u#); right_paren(hair,stem); endchar;
  108.  
  109. cmchar "\Big right parenthesis";
  110. beginchar(oct"021",9u#,rule_thickness#,3dh#-rule_thickness#);
  111. adjust_fit(-.25u#,2u#); right_paren(rule_thickness,.5[stem,bold]); endchar;
  112.  
  113. cmchar "\bigg right parenthesis";
  114. beginchar(oct"023",11u#,rule_thickness#,4dh#-rule_thickness#);
  115. adjust_fit(-.25u#,2.5u#); right_paren(rule_thickness+.2dw,bold); endchar;
  116.  
  117. cmchar "\Bigg right parenthesis";
  118. beginchar(oct"041",11.5u#,rule_thickness#,5dh#-rule_thickness#);
  119. adjust_fit(-.25u#,3u#); right_paren(rule_thickness+.4dw,bold+dw); endchar;
  120.  
  121. cmchar "Extensible right parenthesis---top";
  122. beginchar(oct"061",12u#,rule_thickness#,3dh#-rule_thickness#);
  123. adjust_fit(-.25u#,4u#); pickup fine.nib;
  124. numeric min_breadth,max_breadth;
  125. min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
  126. pos1(hround min_breadth,0); pos2(hround max_breadth,0);
  127. lft x1l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
  128. top y1=h-1; y2=-d-eps;
  129. filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e;  % upper arc
  130. penlabels(1,2); endchar;
  131.  
  132. cmchar "Extensible right parenthesis---bottom";
  133. beginchar(oct"101",12u#,rule_thickness#,3dh#-rule_thickness#);
  134. adjust_fit(-.25u#,4u#); pickup fine.nib;
  135. numeric min_breadth,max_breadth;
  136. min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
  137. pos3(hround min_breadth,0); pos2(hround max_breadth,0);
  138. lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
  139. bot y3=1-d; y2=h+eps;
  140. filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e;  % lower arc
  141. penlabels(2,3); endchar;
  142.  
  143. cmchar "Extensible right parenthesis---extension module";
  144. beginchar(oct"103",12u#,0,dh#);
  145. adjust_fit(-.25u#,4u#); pickup fine.nib;
  146. numeric max_breadth; max_breadth=bold+2dw;
  147. pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
  148. rt x2r=rt x2'r=hround(w-1.25u); y2=h+eps; y2'=-d-eps;
  149. filldraw stroke z2e--z2'e;  % link
  150. penlabels(2,2'); endchar;
  151.  
  152. cmchar "\big left bracket";
  153. beginchar(oct"002",6u#,rule_thickness#,2dh#-rule_thickness#);
  154. adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,true); endchar;
  155.  
  156. cmchar "\Big left bracket";
  157. beginchar(oct"150",6.5u#,rule_thickness#,3dh#-rule_thickness#);
  158. adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,true); endchar;
  159.  
  160. cmchar "\bigg left bracket";
  161. beginchar(oct"024",7u#,rule_thickness#,4dh#-rule_thickness#);
  162. adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,true); endchar;
  163.  
  164. cmchar "\Bigg left bracket";
  165. beginchar(oct"042",7.5u#,rule_thickness#,5dh#-rule_thickness#);
  166. adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,true); endchar;
  167.  
  168. cmchar "Extensible left b